﻿#pragma once

#include "FITKAbstractQtXMLWriter.h"

class QDomElement;
namespace Interface
{
    class FITKInterfaceIOAPI FITKCustomDataXMLWriter : public FITKAbstractQtXMLWriter
    {
        Q_OBJECT
    public:
        explicit FITKCustomDataXMLWriter() = default;
        virtual ~FITKCustomDataXMLWriter() = default;

        void run() override;

        void consoleMessage(int level, const QString& str) override;

        void saveFile();

    protected:
        void writeVersion();
        void writeRoot();

        void writeData();
        void writeDataSolid(QDomElement ele);
        void writeDataFluid(QDomElement ele);
        void writeDataInlet(QDomElement ele);
        void writeDataOutlet(QDomElement ele);

        void writeMonitor();
        void writeMonitorSamplingPoint(QDomElement ele);

        void writeConfiguration();
        void writeCfgPSet(QDomElement ele);
        void writeCfgCSet(QDomElement ele);

        void writePostprocess();
        void writePost3DVisualization(QDomElement ele);
    };
}
